package com.lovo.cloud1.service.impl;


import com.lovo.cloud1.service.MovieService;
import com.lovo.util.dto.MovieDTO;
import com.lovo.util.dto.MovieNumDTO;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * @author cwl
 * @date 2020/11/30 16:57
 * @description
 */
@Service
public class MovieServiceImpl implements MovieService {
    private static List<MovieDTO> list = new ArrayList();
    private static List<MovieDTO> list1 = new ArrayList();

    static {
        list.add(new MovieDTO("12312313", "八百", 15));
        list.add(new MovieDTO("14747447", "八百", 15));
        list.add(new MovieDTO("12321435", "八百", 15));
        list.add(new MovieDTO("45657643", "八百", 15));
        list.add(new MovieDTO("34588854", "八百", 15));
        list.add(new MovieDTO("45665865", "八百", 15));

        list1.add(new MovieDTO("34567645", "小屋", 20));
        list1.add(new MovieDTO("32345467", "小屋", 20));
        list1.add(new MovieDTO("98765433", "小屋", 20));
        list1.add(new MovieDTO("34353455", "小屋", 20));
        list1.add(new MovieDTO("34546546", "小屋", 20));
        list1.add(new MovieDTO("87656433", "小屋", 20));

    }


    @Override
    public MovieNumDTO buyTicket(String name, Integer num) {
        String str=new String();
        synchronized (str){
            MovieNumDTO movieNumDTO = new MovieNumDTO();
            if ("八百".equals(name) && num < list.size()) {
                for (int i = 0; i < num; i++) {
                    movieNumDTO.getMovieDTOList().add(list.get(i));
                    list.remove(i);
                }
                movieNumDTO.setNum(num);
                movieNumDTO.setState("购票成功");
                movieNumDTO.setPriceSum(num * 15);
            } else if ("小屋".equals(name) && num < list1.size()) {
                for (int i = 0; i < num; i++) {
                    movieNumDTO.getMovieDTOList().add(list1.get(i));
                    list1.remove(i);
                }
                movieNumDTO.setNum(num);
                movieNumDTO.setState("购票成功");
                movieNumDTO.setPriceSum(num * 20);
            } else {
                movieNumDTO.setState("购票失败，已售完");
            }

            return movieNumDTO;

        }


    }
}
